home *** CD-ROM | disk | FTP | other *** search
/ Enter 2004 January / enter-2004-01.iso / files / maxima-5.9.0.exe / {app} / info / maxima.info-9 < prev    next >
Encoding:
GNU Info File  |  2003-02-09  |  48.8 KB  |  1,234 lines

  1. This is maxima.info, produced by makeinfo version 4.1 from maxima.texi.
  2.  
  3.    This is a Texinfo Maxima Manual
  4.  
  5.    Copyright 1994,2001 William F. Schelter
  6.  
  7. START-INFO-DIR-ENTRY
  8. * Maxima: (maxima).     A computer algebra system.
  9. END-INFO-DIR-ENTRY
  10.  
  11. 
  12. File: maxima.info,  Node: Definitions for Matrices and Linear Algebra,  Prev: Introduction to Matrices and Linear Algebra,  Up: Matrices and Linear Algebra
  13.  
  14. Definitions for Matrices and Linear Algebra
  15. ===========================================
  16.  
  17.  - Function: ADDCOL (M,list1,list2,...,listn)
  18.      appends the column(s) given by the one or more lists (or matrices)
  19.      onto the matrix M.
  20.  
  21.  
  22.  - Function: ADDROW (M,list1,list2,...,listn)
  23.      appends the row(s) given by the one or more lists (or matrices)
  24.      onto the matrix M.
  25.  
  26.  
  27.  - Function: ADJOINT (matrix)
  28.      computes the adjoint of a matrix.
  29.  
  30.  
  31.  - Function: AUGCOEFMATRIX ([eq1, ...], [var1, ...])
  32.      the augmented coefficient matrix for the variables var1,... of the
  33.      system of linear equations eq1,....  This is the coefficient
  34.      matrix with a column adjoined for the constant terms in each
  35.      equation (i.e. those not dependent upon var1,...).  Do
  36.      EXAMPLE(AUGCOEFMATRIX); for an example.
  37.  
  38.  
  39.  - Function: CHARPOLY (M, var)
  40.      computes the characteristic polynomial for Matrix M with respect
  41.      to var.  That is, DETERMINANT(M - DIAGMATRIX(LENGTH(M),var)).  For
  42.      examples of this command, do EXAMPLE(CHARPOLY); .
  43.  
  44.  
  45.  - Function: COEFMATRIX ([eq1, ...], [var1, ...])
  46.      the coefficient matrix for the variables var1,... of the system of
  47.      linear equations eq1,...
  48.  
  49.  
  50.  - Function: COL (M,i)
  51.      gives a matrix of the ith column of the matrix M.
  52.  
  53.  
  54.  - Function: COLUMNVECTOR (X)
  55.      a function in the EIGEN package.  Do LOAD(EIGEN) to use it.
  56.      COLUMNVECTOR takes a LIST as its argument and returns a column
  57.      vector the components of which are the elements of the list.  The
  58.      first element is the first component,...etc...(This is useful if
  59.      you want to use parts of the outputs of the functions in this
  60.      package in matrix calculations.)
  61.  
  62.  
  63.  - Function: CONJUGATE (X)
  64.      a function in the EIGEN package on the SHARE directory.  It
  65.      returns the complex conjugate of its argument.  This package may
  66.      be loaded by LOAD(EIGEN); .  For a complete description of this
  67.      package, do PRINTFILE("eigen.usg"); .
  68.  
  69.  
  70.  - Function: COPYMATRIX (M)
  71.      creates a copy of the matrix M.  This is the only way to make a
  72.      copy aside from recreating M elementwise.  Copying a matrix may be
  73.      useful when SETELMX is used.
  74.  
  75.  
  76.  - Function: DETERMINANT (M)
  77.      computes the determinant of M by a method similar to Gaussian
  78.      elimination.  The form of the result depends upon the setting of
  79.      the switch RATMX.  There is a special routine for dealing with
  80.      sparse determininants which can be used by setting the switches
  81.      RATMX:TRUE and SPARSE:TRUE.
  82.  
  83.  
  84.  - Variable: DETOUT
  85.      default: [FALSE] if TRUE will cause the determinant of a matrix
  86.      whose inverse is computed to be kept outside of the inverse.  For
  87.      this switch to have an effect DOALLMXOPS and DOSCMXOPS should be
  88.      FALSE (see their descriptions).  Alternatively this switch can be
  89.      given to EV which causes the other two to be set correctly.
  90.  
  91.  
  92.  - Function: DIAGMATRIX (n, x)
  93.      returns a diagonal matrix of size n by n with the diagonal
  94.      elements all x.  An identity matrix is created by DIAGMATRIX(n,1),
  95.      or one may use IDENT(n).
  96.  
  97.  
  98.  - Variable: DOALLMXOPS
  99.      default: [TRUE] if TRUE all operations relating to matrices are
  100.      carried out.  If it is FALSE then the setting of the individual
  101.      DOT switches govern which operations are performed.
  102.  
  103.  
  104.  - Variable: DOMXEXPT
  105.      default: [TRUE] if TRUE,
  106.           %E^MATRIX([1,2],[3,4]) ==>
  107.           MATRIX([%E,%E^2],[%E^3,%E^4])
  108.      In general, this transformation affects expressions of the form
  109.      <base>^<power> where <base> is an expression assumed scalar or
  110.      constant, and <power> is a list or matrix.  This transformation is
  111.      turned off if this switch is set to FALSE.
  112.  
  113.  
  114.  - Variable: DOMXMXOPS
  115.      default: [TRUE] if TRUE then all matrix-matrix or matrix-list
  116.      operations are carried out (but not scalar-matrix operations); if
  117.      this switch is FALSE they are not.
  118.  
  119.  
  120.  - Variable: DOMXNCTIMES
  121.      default: [FALSE] Causes non-commutative products of matrices to be
  122.      carried out.
  123.  
  124.  
  125.  - Variable: DONTFACTOR
  126.      default: [] may be set to a list of variables with respect to
  127.      which factoring is not to occur.  (It is initially empty).
  128.      Factoring also will not take place with respect to any variables
  129.      which are less important (using the variable ordering assumed for
  130.      CRE form) than those on the DONTFACTOR list.
  131.  
  132.  
  133.  - Variable: DOSCMXOPS
  134.      default: [FALSE] if TRUE then scalar-matrix operations are
  135.      performed.
  136.  
  137.  
  138.  - Variable: DOSCMXPLUS
  139.      default: [FALSE] if TRUE will cause SCALAR + MATRIX to give a
  140.      matrix answer.  This switch is not subsumed under DOALLMXOPS.
  141.  
  142.  
  143.  - Variable: DOT0NSCSIMP
  144.      default: [TRUE] Causes a non-commutative product of zero and a
  145.      nonscalar term to be simplified to a commutative product.
  146.  
  147.  
  148.  - Variable: DOT0SIMP
  149.      default: [TRUE] Causes a non-commutative product of zero and a
  150.      scalar term to be simplified to a commutative product.
  151.  
  152.  
  153.  - Variable: DOT1SIMP
  154.      default: [TRUE] Causes a non-commutative product of one and
  155.      another term to be simplified to a commutative product.
  156.  
  157.  
  158.  - Variable: DOTASSOC
  159.      default: [TRUE] when TRUE causes (A.B).C to simplify to A.(B.C)
  160.  
  161.  
  162.  - Variable: DOTCONSTRULES
  163.      default: [TRUE] Causes a non-commutative product of a constant and
  164.      another term to be simplified to a commutative product.  Turning
  165.      on this flag effectively turns on DOT0SIMP, DOT0NSCSIMP, and
  166.      DOT1SIMP as well.
  167.  
  168.  
  169.  - Variable: DOTDISTRIB
  170.      default: [FALSE] if TRUE will cause A.(B+C) to simplify to A.B+A.C
  171.  
  172.  
  173.  - Variable: DOTEXPTSIMP
  174.      default: [TRUE] when TRUE causes A.A to simplify to A^^2
  175.  
  176.  
  177.  - Variable: DOTIDENT
  178.      default: [1]  The value to be returned by X^^0.
  179.  
  180.  
  181.  - Variable: DOTSCRULES
  182.      default: [FALSE] when TRUE will cause A.SC or SC.A to simplify to
  183.      SC*A and A.(SC*B) to simplify to SC*(A.B)
  184.  
  185.  
  186.  - Function: ECHELON (M)
  187.      produces the echelon form of the matrix M.  That is, M with
  188.      elementary row operations performed on it such that the first
  189.      non-zero element in each row in the resulting matrix is a one and
  190.      the column elements under the first one in each row are all zero.
  191.                                   [2  1 - A  -5 B ]
  192.           (D2)                    [               ]
  193.                                   [A    B      C  ]
  194.           
  195.           (C3) ECHELON(D2);
  196.                            [      A - 1        5 B      ]
  197.                            [1   - -----      - ---      ]
  198.                            [        2           2       ]
  199.           (D3)             [                            ]
  200.                            [                2 C + 5 A B ]
  201.                            [0     1         ------------]
  202.                            [                       2    ]
  203.                            [                2 B + A  - A]
  204.  
  205.  - Function: EIGENVALUES (mat)
  206.      There is a package on the SHARE; directory which contains
  207.      functions for computing EIGENVALUES and EIGENVECTORS and related
  208.      matrix computations.  For information on it do
  209.      PRINTFILE(EIGEN,USAGE,SHARE); .  EIGENVALUES(mat) takes a MATRIX
  210.      as its argument and returns a list of lists the first sublist of
  211.      which is the list of eigenvalues of the matrix and the other
  212.      sublist of which is the list of the multiplicities of the
  213.      eigenvalues in the corresponding order.  [ The MACSYMA function
  214.      SOLVE is used here to find the roots of the characteristic
  215.      polynomial of the matrix.  Sometimes SOLVE may not be able to find
  216.      the roots of the polynomial;in that case nothing in this package
  217.      except CONJUGATE, INNERPRODUCT, UNITVECTOR, COLUMNVECTOR and
  218.      GRAMSCHMIDT will work unless you know the eigenvalues.  In some
  219.      cases SOLVE may generate very messy eigenvalues.  You may want to
  220.      simplify the answers yourself before you go on.  There are
  221.      provisions for this and they will be explained below.  ( This
  222.      usually happens when SOLVE returns a not-so-obviously real
  223.      expression for an eigenvalue which is supposed to be real...)]
  224.      The EIGENVALUES command is available directly from MACSYMA.  To
  225.      use the other functions you must have loaded in the EIGEN package,
  226.      either by a previous call to EIGENVALUES, or by doing
  227.      LOADFILE("eigen"); .
  228.  
  229.  
  230.  - Function: EIGENVECTORS (MAT)
  231.      takes a MATRIX as its argument and returns a list of lists the
  232.      first sublist of which is the output of the EIGENVALUES command
  233.      and the other sublists of which are the eigenvectors of the matrix
  234.      corresponding to those eigenvalues respectively.  This function
  235.      will work directly from MACSYMA, but if you wish to take advantage
  236.      of the flags for controlling it (see below), you must first load
  237.      in the EIGEN package from the SHARE; directory.  You may do that by
  238.      LOADFILE("eigen");.  The flags that affect this function are:
  239.      NONDIAGONALIZABLE[FALSE] will be set to TRUE or FALSE depending on
  240.      whether the matrix is nondiagonalizable or diagonalizable after an
  241.      EIGENVECTORS command is executed.  HERMITIANMATRIX[FALSE] If set
  242.      to TRUE will cause the degenerate eigenvectors of the hermitian
  243.      matrix to be orthogonalized using the Gram-Schmidt algorithm.
  244.      KNOWNEIGVALS[FALSE] If set to TRUE the EIGEN package will assume
  245.      the eigenvalues of the matrix are known to the user and stored
  246.      under the global name LISTEIGVALS.  LISTEIGVALS should be set to a
  247.      list similar to the output of the EIGENVALUES command.  ( The
  248.      MACSYMA function ALGSYS is used here to solve for the
  249.      eigenvectors. Sometimes if the eigenvalues are messy, ALGSYS may
  250.      not be able to produce a solution.  In that case you are advised
  251.      to try to simplify the eigenvalues by first finding them using
  252.      EIGENVALUES command and then using whatever marvelous tricks you
  253.      might have to reduce them to something simpler.  You can then use
  254.      the KNOWNEIGVALS flag to proceed further. )
  255.  
  256.  
  257.  - Function: EMATRIX (m, n, x, i, j)
  258.      will create an m by n matrix all of whose elements are zero except
  259.      for the i,j element which is x.
  260.  
  261.  
  262.  - Function: ENTERMATRIX (m, n)
  263.      allows one to enter a matrix element by element with MACSYMA
  264.      requesting values for each of the m*n entries.
  265.           (C1) ENTERMATRIX(3,3);
  266.           Is the matrix  1. Diagonal  2. Symmetric  3. Antisymmetric
  267.            4. General
  268.           
  269.           Answer 1, 2, 3 or 4
  270.           1;
  271.           Row 1 Column 1:  A;
  272.           Row 2 Column 2:  B;
  273.           Row 3 Column 3:  C;
  274.           Matrix entered.
  275.                                            [ A  0  0 ]
  276.                                            [         ]
  277.           (D1)                             [ 0  B  0 ]
  278.                                            [         ]
  279.                                            [ 0  0  C ]
  280.  
  281.  - Function: GENMATRIX (array, i2, j2, i1, j1)
  282.      generates a matrix from the array using array(i1,j1) for the first
  283.      (upper-left) element and array(i2,j2) for the last (lower-right)
  284.      element of the matrix.  If j1=i1 then j1 may be omitted. If
  285.      j1=i1=1 then i1 and j1 may both be omitted. If a selected element
  286.      of the array doesn't exist a symbolic one will be used.
  287.           (C1) H[I,J]:=1/(I+J-1)$
  288.           (C2) GENMATRIX(H,3,3);
  289.                                      [   1  1]
  290.                                      [1  -  -]
  291.                                      [   2  3]
  292.                                      [       ]
  293.                                      [1  1  1]
  294.           (D2)                       [-  -  -]
  295.                                      [2  3  4]
  296.                                      [       ]
  297.                                      [1  1  1]
  298.                                      [-  -  -]
  299.                                      [3  4  5]
  300.  
  301.  - Function: GRAMSCHMIDT (X)
  302.      a function in the EIGEN package.  Do LOAD(EIGEN) to use it.
  303.      GRAMSCHMIDT takes a LIST of lists the sublists of which are of
  304.      equal length and not necessarily orthogonal (with respect to the
  305.      innerproduct defined above) as its argument and returns a similar
  306.      list each sublist of which is orthogonal to all others.  (Returned
  307.      results may contain integers that are factored.  This is due to
  308.      the fact that the MACSYMA function FACTOR is used to simplify each
  309.      substage of the Gram-Schmidt algorithm.  This prevents the
  310.      expressions from getting very messy and helps to reduce the sizes
  311.      of the numbers that are produced along the way.)
  312.  
  313.  
  314.  - Function: HACH (a,b,m,n,l)
  315.      An implementation of Hacijan's linear programming algorithm is
  316.      available by doing BATCH("kach.mc"$.  Details of use are available
  317.      by doing BATCH("kach.dem");
  318.  
  319.  
  320.  - Function: IDENT (n)
  321.      produces an n by n identity matrix.
  322.  
  323.  
  324.  - Function: INNERPRODUCT (X,Y)
  325.      a function in the EIGEN package.  Do LOAD(EIGEN) to use it.
  326.      INNERPRODUCT takes two LISTS of equal length as its arguments and
  327.      returns their inner (scalar) product defined by (Complex Conjugate
  328.      of X).Y (The "dot" operation is the same as the usual one defined
  329.      for vectors).
  330.  
  331.  
  332.  - Function: INVERT (matrix)
  333.      finds the inverse of a matrix using the adjoint method.  This
  334.      allows a user to compute the inverse of a matrix with bfloat
  335.      entries or polynomials with floating pt. coefficients without
  336.      converting to cre-form.  The DETERMINANT command is used to compute
  337.      cofactors, so if RATMX is FALSE (the default) the inverse is
  338.      computed without changing the representation of the elements.  The
  339.      current implementation is inefficient for matrices of high order.
  340.      The DETOUT flag if true keeps the determinant factored out of the
  341.      inverse.  Note: the results are not automatically expanded.  If
  342.      the matrix originally had polynomial entries, better appearing
  343.      output can be generated by EXPAND(INVERT(mat)),DETOUT.  If it is
  344.      desirable to then divide through by the determinant this can be
  345.      accomplished by XTHRU(%) or alternatively from scratch by
  346.      EXPAND(ADJOINT(mat))/EXPAND(DETERMINANT(mat)).
  347.      INVERT(mat):=ADJOINT(mat)/DETERMINANT(mat).  See also
  348.      DESCRIBE("^^"); for another method of inverting a matrix.
  349.  
  350.  
  351.  - Variable: LMXCHAR
  352.      default: [[] - The character used to display the (left) delimiter
  353.      of a matrix (see also RMXCHAR).
  354.  
  355.  
  356.  - Function: MATRIX (row1, ..., rown)
  357.      defines a rectangular matrix with the indicated rows.  Each row
  358.      has the form of a list of expressions, e.g.  [A, X**2, Y, 0] is a
  359.      list of 4 elements.  There are a number of MACSYMA commands which
  360.      deal with matrices, for example:  DETERMINANT, CHARPOLY,
  361.      GENMATRIX, ADDCOL, ADDROW, COPYMATRIX, TRANSPOSE, ECHELON, and
  362.      RANK.  There is also a package on the SHARE directory for
  363.      computing EIGENVALUES.  Try DESCRIBE on these for more information.
  364.      Matrix multiplication is effected by using the dot operator, ".",
  365.      which is also convenient if the user wishes to represent other
  366.      non-commutative algebraic operations.  The exponential of the "."
  367.      operation is "^^" .  Thus, for a matrix A, A.A = A^^2 and, if it
  368.      exists, A^^-1 is the inverse of A.  The operations +,-,*,** are
  369.      all element-by-element operations; all operations are normally
  370.      carried out in full, including the . (dot) operation.  Many
  371.      switches exist for controlling simplification rules involving dot
  372.      and matrix-list operations.  Options Relating to Matrices:
  373.      LMXCHAR, RMXCHAR, RATMX, LISTARITH, DETOUT, DOALLMXOPS, DOMXEXPT
  374.      DOMXMXOPS, DOSCMXOPS, DOSCMXPLUS, SCALARMATRIX, and SPARSE.  Do
  375.      DESCRIBE(option) for details on them.
  376.  
  377.  
  378.  - Function: MATRIXMAP (fn, M)
  379.      will map the function fn onto each element of the matrix M.
  380.  
  381.  
  382.  - Function: MATRIXP (exp)
  383.      is TRUE if exp is a matrix else FALSE.
  384.  
  385.  
  386.  - Variable: MATRIX_ELEMENT_ADD
  387.      default: [+] - May be set to "?"; may also be the name of a
  388.      function, or a LAMBDA expression.  In this way, a rich variety of
  389.      algebraic structures may be simulated.  For more details, do
  390.      DEMO("matrix.dem1"); and DEMO("matrix.dem2");.
  391.  
  392.  
  393.  - Variable: MATRIX_ELEMENT_MULT
  394.      default: [*] - May be set to "."; may also be the name of a
  395.      function, or a LAMBDA expression.  In this way, a rich variety of
  396.      algebraic structures may be simulated.  For more details, do
  397.      DEMO("matrix.dem1"); and DEMO("matrix.dem2");
  398.  
  399.  
  400.  - Variable: MATRIX_ELEMENT_TRANSPOSE
  401.      default: [FALSE] - Other useful settings are TRANSPOSE and
  402.      NONSCALARS; may also be the name of a function, or a LAMBDA
  403.      expression.  In this way, a rich variety of algebraic structures
  404.      may be simulated.  For more details, do DEMO("matrix.dem1"); and
  405.      DEMO("matrix.dem2");.
  406.  
  407.  
  408.  - Function: MATTRACE (M)
  409.      computes the trace [sum of the elements on the main diagonal] of
  410.      the square matrix M.  It is used by NCHARPOLY, an alternative to
  411.      MACSYMA's CHARPOLY.  It is used by doing LOADFILE("nchrpl");
  412.  
  413.  
  414.  - Function: MINOR (M, i, j)
  415.      computes the i,j minor of the matrix M.  That is, M with row i and
  416.      column j removed.
  417.  
  418.  
  419.  - Function: NCEXPT (A,B)
  420.      if an (non-commutative) exponential expression is too wide to be
  421.      displayed as A^^B it will appear as NCEXPT(A,B).
  422.  
  423.  
  424.  - Function: NCHARPOLY (M,var)
  425.      finds the characteristic polynomial of the matrix M with respect
  426.      to var.  This is an alternative to MACSYMA's CHARPOLY.  NCHARPOLY
  427.      works by computing traces of powers of the given matrix, which are
  428.      known to be equal to sums of powers of the roots of the
  429.      characteristic polynomial.  From these quantities the symmetric
  430.      functions of the roots can be calculated, which are nothing more
  431.      than the coefficients of the characteristic polynomial.  CHARPOLY
  432.      works by forming the determinant of VAR * IDENT [N] - A.  Thus
  433.      NCHARPOLY wins, for example, in the case of large dense matrices
  434.      filled with integers, since it avoids polynomial arithmetic
  435.      altogether.  It may be used by doing LOADFILE("nchrpl");
  436.  
  437.  
  438.  - Function: NEWDET (M,n)
  439.      also computes the determinant of M but uses the Johnson-Gentleman
  440.      tree minor algorithm.  M may be the name of a matrix or array.
  441.      The argument n is the order; it is optional if M is a matrix.
  442.  
  443.  
  444.  - declaration: NONSCALAR
  445.      - makes ai behave as does a list or matrix with respect to the dot
  446.      operator.
  447.  
  448.  
  449.  - Function: NONSCALARP (exp)
  450.      is TRUE if exp is a non-scalar, i.e.  it contains atoms declared
  451.      as non-scalars, lists, or matrices.
  452.  
  453.  
  454.  - Function: PERMANENT (M,n)
  455.      computes the permanent of the matrix M.  A permanent is like a
  456.      determinant but with no sign changes.
  457.  
  458.  
  459.  - Function: RANK (M)
  460.      computes the rank of the matrix M.  That is, the order of the
  461.      largest non-singular subdeterminant of M.  Caveat: RANK may return
  462.      the wrong answer if it cannot determine that a matrix element that
  463.      is equivalent to zero is indeed so.
  464.  
  465.  
  466.  - Variable: RATMX
  467.      default: [FALSE] - if FALSE will cause determinant and matrix
  468.      addition, subtraction, and multiplication to be performed in the
  469.      representation of the matrix elements and will cause the result of
  470.      matrix inversion to be left in general representation.  If it is
  471.      TRUE, the 4 operations mentioned above will be performed in CRE
  472.      form and the result of matrix inverse will be in CRE form.  Note
  473.      that this may cause the elements to be expanded (depending on the
  474.      setting of RATFAC) which might not always be desired.
  475.  
  476.  
  477.  - Function: ROW (M, i)
  478.      gives a matrix of the ith row of matrix M.
  479.  
  480.  
  481.  - Variable: SCALARMATRIXP
  482.      default: [TRUE] - if TRUE, then whenever a 1 x 1 matrix is
  483.      produced as a result of computing the dot product of matrices it
  484.      will be converted to a scalar, namely the only element of the
  485.      matrix.  If set to ALL, then this conversion occurs whenever a 1 x
  486.      1 matrix is simplified.  If set to FALSE, no conversion will be
  487.      done.
  488.  
  489.  
  490.  - Function: SETELMX (x, i, j, M)
  491.      changes the i,j element of M to x.  The altered matrix is returned
  492.      as the value.  The notation M[i,j]:x may also be used, altering M
  493.      in a similar manner, but returning x as the value.
  494.  
  495.  
  496.  - Function: SIMILARITYTRANSFORM (MAT)
  497.      a function in the EIGEN package.  Do LOAD(EIGEN) to use it.
  498.      SIMILARITYTRANSFORM takes a MATRIX as its argument and returns a
  499.      list which is the output of the UNITEIGENVECTORS command.  In
  500.      addition if the flag NONDIAGONALIZABLE is FALSE two global
  501.      matrices LEFTMATRIX and RIGHTMATRIX will be generated.  These
  502.      matrices have the property that LEFTMATRIX.MAT.RIGHTMATRIX is a
  503.      diagonal matrix with the eigenvalues of MAT on the diagonal.  If
  504.      NONDIAGONALIZABLE is TRUE these two matrices will not be
  505.      generated.  If the flag HERMITIANMATRIX is TRUE then LEFTMATRIX is
  506.      the complex conjugate of the transpose of RIGHTMATRIX.  Otherwise
  507.      LEFTMATRIX is the inverse of RIGHTMATRIX.  RIGHTMATRIX is the
  508.      matrix the columns of which are the unit eigenvectors of MAT.  The
  509.      other flags (see DESCRIBE(EIGENVALUES); and
  510.      DESCRIBE(EIGENVECTORS);) have the same effects since
  511.      SIMILARITYTRANSFORM calls the other functions in the package in
  512.      order to be able to form RIGHTMATRIX.
  513.  
  514.  
  515.  - Variable: SPARSE
  516.      default: [FALSE] - if TRUE and if RATMX:TRUE then DETERMINANT will
  517.      use special routines for computing sparse determinants.
  518.  
  519.  
  520.  - Function: SUBMATRIX (m1, ..., M, n1, ...)
  521.      creates a new matrix composed of the matrix M with rows mi
  522.      deleted, and columns ni deleted.
  523.  
  524.  
  525.  - Function: TRANSPOSE (M)
  526.      produces the transpose of the matrix M.
  527.  
  528.  
  529.  - Function: TRIANGULARIZE (M)
  530.      produces the upper triangular form of the matrix M which needn't
  531.      be square.
  532.  
  533.  
  534.  - Function: UNITEIGENVECTORS (MAT)
  535.      a function in the EIGEN package.  Do LOAD(EIGEN) to use it.
  536.      UNITEIGENVECTORS takes a MATRIX as its argument and returns a list
  537.      of lists the first sublist of which is the output of the
  538.      EIGENVALUES command and the other sublists of which are the unit
  539.      eigenvectors of the matrix corresponding to those eigenvalues
  540.      respectively.  The flags mentioned in the description of the
  541.      EIGENVECTORS command have the same effects in this one as well.  In
  542.      addition there is a flag which may be useful :
  543.      KNOWNEIGVECTS[FALSE] - If set to TRUE the EIGEN package will assume
  544.      that the eigenvectors of the matrix are known to the user and are
  545.      stored under the global name LISTEIGVECTS.  LISTEIGVECTS should be
  546.      set to a list similar to the output of the EIGENVECTORS command.
  547.      (If KNOWNEIGVECTS is set to TRUE and the list of eigenvectors is
  548.      given the setting of the flag NONDIAGONALIZABLE may not be
  549.      correct.  If that is the case please set it to the correct value.
  550.      The author assumes that the user knows what he is doing and will
  551.      not try to diagonalize a matrix the eigenvectors of which do not
  552.      span the vector space of the appropriate dimension...)
  553.  
  554.  
  555.  - Function: UNITVECTOR (X)
  556.      a function in the EIGEN package.  Do LOAD(EIGEN) to use it.
  557.      UNITVECTOR takes a LIST as its argument and returns a unit list.
  558.      (i.e. a list with unit magnitude).
  559.  
  560.  
  561.  - Function: VECTORSIMP (vectorexpression)
  562.      This function employs additional simplifications, together with
  563.      various optional expansions according to the settings of the
  564.      following global flags:
  565.  
  566.           EXPANDALL, EXPANDDOT, EXPANDDOTPLUS, EXPANDCROSS, EXPANDCROSSPLUS,
  567.           EXPANDCROSSCROSS, EXPANDGRAD, EXPANDGRADPLUS, EXPANDGRADPROD,
  568.           EXPANDDIV, EXPANDDIVPLUS, EXPANDDIVPROD, EXPANDCURL, EXPANDCURLPLUS,
  569.           EXPANDCURLCURL, EXPANDLAPLACIAN, EXPANDLAPLACIANPLUS,
  570.           EXPANDLAPLACIANPROD.
  571.  
  572.      All these flags have default value FALSE. The PLUS suffix refers to
  573.      employing additivity or distributivity.  The PROD suffix refers to
  574.      the expansion for an operand that is any kind of product.
  575.      EXPANDCROSSCROSS refers to replacing p~(q~r) with (p.r)*q-(p.q)*r,
  576.      and EXPANDCURLCURL refers to replacing CURL CURL p with GRAD DIV p
  577.      + DIV GRAD p.  EXPANDCROSS:TRUE has the same effect as
  578.      EXPANDCROSSPLUS:EXPANDCROSSCROSS:TRUE, etc.  Two other flags,
  579.      EXPANDPLUS and EXPANDPROD, have the same effect as setting all
  580.      similarly suffixed flags true.  When TRUE, another flag named
  581.      EXPANDLAPLACIANTODIVGRAD, replaces the LAPLACIAN operator with the
  582.      composition DIV GRAD.  All of these flags are initially FALSE.  For
  583.      convenience, all of these flags have been declared EVFLAG.  For
  584.      orthogonal curvilinear coordinates, the global variables
  585.      COORDINATES[[X,Y,Z]], DIMENSION[3], SF[[1,1,1]], and SFPROD[1] are
  586.      set by the function invocation
  587.  
  588.  
  589.  - Variable: VECT_CROSS
  590.      default:[FALSE] - If TRUE allows DIFF(X~Y,T) to work where ~ is
  591.      defined in SHARE;VECT (where VECT_CROSS is set to TRUE, anyway.)
  592.  
  593.  
  594.  - Function: ZEROMATRIX (m,n)
  595.      takes integers m,n as arguments and returns an m by n matrix of
  596.      0's.
  597.  
  598.  
  599.  - special symbol: "["
  600.      - [ and ] are the characters which MACSYMA uses to delimit a list.
  601.  
  602. 
  603. File: maxima.info,  Node: Affine,  Next: Tensor,  Prev: Matrices and Linear Algebra,  Up: Top
  604.  
  605. Affine
  606. ******
  607.  
  608. * Menu:
  609.  
  610. * Definitions for Affine::
  611.  
  612. 
  613. File: maxima.info,  Node: Definitions for Affine,  Prev: Affine,  Up: Affine
  614.  
  615. Definitions for Affine
  616. ======================
  617.  
  618.  - Function: FAST_LINSOLVE (eqns,variables)
  619.      Solves the linear system of equations EQNS for the variables
  620.      VARIABLES  and returns a result suitable to SUBLIS.  The function
  621.      is faster than linsolve for system of equations which are sparse.
  622.  
  623.  
  624.  - Function: GROBNER_BASIS (eqns)
  625.      Takes as argument a macsyma list of equations and returns a
  626.      grobner basis for them.  The function POLYSIMP may now be used to
  627.      simplify other functions relative to the equations.
  628.  
  629.      GROBNER_BASIS([3*X^2+1,Y*X])$
  630.  
  631.      POLYSIMP(Y^2*X+X^3*9+2)==> -3*x+2
  632.  
  633.      Polysimp(f)==> 0 if and only if f is in the ideal generated by the
  634.      EQNS  ie.  if and only if f is a polynomial combination of the
  635.      elements of EQNS.
  636.  
  637.  
  638.  - Function: SET_UP_DOT_SIMPLIFICATIONS (eqns,[check-thru-degree])
  639.      The eqns are polynomial equations in non commutative variables.
  640.      The value of CURRENT_VARIABLES is the list of variables used for
  641.      computing degrees.  The equations must be homogeneous, in order
  642.      for the procedure to terminate.
  643.  
  644.      If you have checked overlapping simplifications in
  645.      DOT_SIMPLIFICATIONS above the degree of f, then the following is
  646.      true: DOTSIMP(f)==> 0 if and only if f is in the ideal generated
  647.      by the EQNS  ie.  if and only if f is a polynomial combination of
  648.      the elements of EQNS.
  649.  
  650.      The degree is that returned by NC_DEGREE.   This in turn is
  651.      influenced by the weights of individual variables.
  652.  
  653.  
  654.  - Function: DECLARE_WEIGHT (var1,wt1,var2,wt2,...)
  655.      Assigns VAR1 weight WT1, VAR2 weight wt2..  These are the weights
  656.      used in computing NC_DEGREE.
  657.  
  658.  
  659.  - Function: NC_DEGREE (poly)
  660.      Degree of a non commutative polynomial.  See DECLARE_WEIGHTS.
  661.  
  662.  
  663.  - Function: DOTSIMP (f)
  664.      ==> 0 if and only if f is in the ideal generated by the EQNS  ie.
  665.      if and only if f is a polynomial combination of the elements of
  666.      EQNS.
  667.  
  668.  
  669.  - Function: FAST_CENTRAL_ELEMENTS (variables,degree)
  670.      if SET_UP_DOT_SIMPLIFICATIONS has been previously done, finds the
  671.      central polynomials in the variables in the given degree, For
  672.      example:
  673.           set_up_dot_simplifications([y.x+x.y],3);
  674.           fast_central_elements([x,y],2);
  675.           [y.y,x.x];
  676.  
  677.  - Function: CHECK_OVERLAPS (degree,add-to-simps)
  678.      checks the overlaps thru degree, making sure that you have
  679.      sufficient simplification rules in each degree, for dotsimp to
  680.      work correctly.  This process can be speeded up if you know before
  681.      hand what the dimension of the space of monomials is.  If it is of
  682.      finite global dimension, then HILBERT should be used.  If you
  683.      don't know the monomial dimensions, do not specify a
  684.      RANK_FUNCTIION.  An optional third argument RESET, false says
  685.      don't bother to query about resetting things.
  686.  
  687.  
  688.  - Function: MONO (vari,n)
  689.      VARI is a list of variables.   Returns the list of independent
  690.      monomials relative to the current dot_simplifications, in degree N
  691.  
  692.  
  693.  - Function: MONOMIAL_DIMENSIONS (n)
  694.      Compute the hilbert series through degreen n for the current
  695.      algebra.
  696.  
  697.  
  698.  - Function: EXTRACT_LINEAR_EQUATIONS (List_nc_polys,monoms)
  699.      Makes a list of the coefficients of the polynomials in
  700.      list_nc_polys of the monoms.  MONOMS is a list of noncommutative
  701.      monomials.   The coefficients should be scalars.   Use
  702.      LIST_NC_MONOMIALS to build the list of monoms.
  703.  
  704.  
  705.  - Function: LIST_NC_MONOMIALS (polys_or_list)
  706.      returns a list of the non commutative monomials occurring in a
  707.      polynomial or a collection of polynomials.
  708.  
  709.  
  710.  - Function: PCOEFF (poly monom [variables-to-exclude-from-cof
  711.           (list-variables monom)])
  712.      This function is called from lisp level, and uses internal poly
  713.      format.
  714.  
  715.           CL-MAXIMA>>(setq me (st-rat #$x^2*u+y+1$))
  716.           (#:Y 1 1 0 (#:X 2 (#:U 1 1) 0 1))
  717.           
  718.           CL-MAXIMA>>(pcoeff me (st-rat #$x^2$))
  719.           (#:U 1 1)
  720.  
  721.      Rule: if a variable appears in monom it must be to the exact power,
  722.      and if it is in variables to exclude it may not appear unless it
  723.      was in monom to the exact power.  (pcoeff pol 1 ..) will exclude
  724.      variables like substituting them to be zero.
  725.  
  726.  
  727.  - Function: NEW-DISREP (poly)
  728.      From lisp this returns the general maxima format for an arg which
  729.      is in st-rat form:
  730.  
  731.           (displa(new-disrep (setq me (st-rat #$x^2*u+y+1$))))
  732.           
  733.                  2
  734.           Y + U X  + 1
  735.  
  736.  - Function: CREATE_LIST (form,var1,list1,var2,list2,...)
  737.      Create a list by evaluating FORM with VAR1 bound to each element
  738.      of LIST1, and for each such binding bind VAR2 to each element of
  739.      LIST2,...  The number of elements in the result will be
  740.      length(list1)*length(list2)*...  Each VARn must actually be a
  741.      symbol-it will not be evaluated.  The LISTn args will be evaluated
  742.      once at the beginning of the iteration.
  743.  
  744.  
  745.           (C82) create_list1(x^i,i,[1,3,7]);
  746.           (D82) [X,X^3,X^7]
  747.  
  748.      With a double iteration:
  749.           (C79) create_list([i,j],i,[a,b],j,[e,f,h]);
  750.           (D79) [[A,E],[A,F],[A,H],[B,E],[B,F],[B,H]]
  751.  
  752.      Instead of LISTn two args maybe supplied each of which should
  753.      evaluate to a number.   These will be the inclusive lower and
  754.      upper bounds for the iteration.
  755.  
  756.           (C81) create_list([i,j],i,[1,2,3],j,1,i);
  757.           (D81) [[1,1],[2,1],[2,2],[3,1],[3,2],[3,3]]
  758.  
  759.      Note that the limits or list for the j variable can depend on the
  760.      current value of i.
  761.  
  762.  
  763.  - Variable: ALL_DOTSIMP_DENOMS
  764.      if its value is FALSE the denominators encountered in getting
  765.      dotsimps will not be collected.   To collect the denoms
  766.           ALL_DOTSIMP_DENOMS:[];
  767.  
  768.      and they will be nconc'd onto the end of the list.
  769.  
  770.  
  771. 
  772. File: maxima.info,  Node: Tensor,  Next: Ctensor,  Prev: Affine,  Up: Top
  773.  
  774. Tensor
  775. ******
  776.  
  777. * Menu:
  778.  
  779. * Introduction to Tensor::
  780. * Definitions for Tensor::
  781.  
  782. 
  783. File: maxima.info,  Node: Introduction to Tensor,  Next: Definitions for Tensor,  Prev: Tensor,  Up: Tensor
  784.  
  785. Introduction to Tensor
  786. ======================
  787.  
  788.    - Indicial Tensor Manipulation package.  It may be loaded by
  789. LOADFILE("itensr"); A manual for the Tensor packages is available in
  790. share/tensor.descr.  A demo is available by DEMO("itenso.dem1"); (and
  791. additional demos are in ("itenso.dem2"), ("itenso.dem3") and following).
  792.  
  793.    - There are two tensor packages in MACSYMA, CTENSR and ITENSR.
  794. CTENSR is Component Tensor Manipulation, and may be accessed with
  795. LOAD(CTENSR); .  ITENSR is Indicial Tensor Manipulation, and is loaded
  796. by doing LOAD(ITENSR); A manual for CTENSR AND ITENSR is available from
  797. the LCS Publications Office.  Request MIT/LCS/TM-167.  In addition,
  798. demos exist on the TENSOR; directory under the filenames CTENSO DEMO1,
  799. DEMO2, etc. and ITENSO DEMO1, DEMO2, etc.  Do DEMO("ctenso.dem1"); or
  800. DEMO("itenso.dem2"); Send bugs or comments to RP or TENSOR.
  801.  
  802. 
  803. File: maxima.info,  Node: Definitions for Tensor,  Prev: Introduction to Tensor,  Up: Tensor
  804.  
  805. Definitions for Tensor
  806. ======================
  807.  
  808.  - Function: CANFORM (exp)
  809.      [Tensor Package] Simplifies exp by renaming dummy indices and
  810.      reordering all indices as dictated by symmetry conditions imposed
  811.      on them. If ALLSYM is TRUE then all indices are assumed symmetric,
  812.      otherwise symmetry information provided by DECSYM declarations
  813.      will be used. The dummy indices are renamed in the same manner as
  814.      in the RENAME function. When CANFORM is applied to a large
  815.      expression the calculation may take a considerable amount of time.
  816.      This time can be shortened by calling RENAME on the expression
  817.      first.  Also see the example under DECSYM. Note: CANFORM may not
  818.      be able to reduce an expression completely to its simplest form
  819.      although it will always return a mathematically correct result.
  820.  
  821.  
  822.  - Function: CANTEN (exp)
  823.      [Tensor Package] Simplifies exp by renaming (see RENAME) and
  824.      permuting dummy indices. CANTEN is restricted to sums of tensor
  825.      products in which no derivatives are present. As such it is limited
  826.      and should only be used if CANFORM is not capable of carrying out
  827.      the required simplification.
  828.  
  829.  
  830.  - Function: CARG (exp)
  831.      returns the argument (phase angle) of exp.  Due to the conventions
  832.      and restrictions, principal value cannot be guaranteed unless exp
  833.      is numeric.
  834.  
  835.  
  836.  - Variable: COUNTER
  837.      default: [1] determines the numerical suffix to be used in
  838.      generating the next dummy index in the tensor package.  The prefix
  839.      is determined by the option DUMMYX[#].
  840.  
  841.  
  842.  - Function: DEFCON (tensor1,<tensor2,tensor3>)
  843.      gives tensor1 the property that the contraction of a product of
  844.      tensor1 and tensor2 results in tensor3 with the appropriate
  845.      indices.  If only one argument, tensor1, is given, then the
  846.      contraction of the product of tensor1 with any indexed object
  847.      having the appropriate indices (say tensor) will yield an indexed
  848.      object with that name, i.e.tensor, and with a new set of indices
  849.      reflecting the contractions performed.      For example, if
  850.      METRIC: G, then DEFCON(G) will implement the raising and lowering
  851.      of indices through contraction with the metric tensor.      More
  852.      than one DEFCON can be given for the same indexed object; the
  853.      latest one given which applies in a particular contraction will be
  854.      used.  CONTRACTIONS is a list of those indexed objects which have
  855.      been given contraction properties with DEFCON.
  856.  
  857.  
  858.  - Function: FLUSH (exp,tensor1,tensor2,...)
  859.      Tensor Package - will set to zero, in exp, all occurrences of the
  860.      tensori that have no derivative indices.
  861.  
  862.  
  863.  - Function: FLUSHD (exp,tensor1,tensor2,...)
  864.      Tensor Package - will set to zero, in exp, all occurrences of the
  865.      tensori that have derivative indices.
  866.  
  867.  
  868.  - Function: FLUSHND (exp,tensor,n)
  869.      Tensor Package - will set to zero, in exp, all occurrences of the
  870.      differentiated object tensor that have n or more derivative
  871.      indices as the following example demonstrates.
  872.           (C1) SHOW(A([I],[J,R],K,R)+A([I],[J,R,S],K,R,S));
  873.                                          J R S      J R
  874.           (D1)                          A        + A
  875.                                          I,K R S    I,K R
  876.           (C2) SHOW(FLUSHND(D1,A,3));
  877.                                                J R
  878.           (D2)                                A
  879.                                                I,K R
  880.  
  881.  - Function: KDELTA (L1,L2)
  882.      is the generalized Kronecker delta function defined in the Tensor
  883.      package with L1 the list of covariant indices and L2 the list of
  884.      contravariant indices.  KDELTA([i],[j]) returns the ordinary
  885.      Kronecker delta.  The command EV(EXP,KDELTA) causes the evaluation
  886.      of an expression containing KDELTA([],[]) to the dimension of the
  887.      manifold.
  888.  
  889.  
  890.  - Function: LC (L)
  891.      is the permutation (or Levi-Civita) tensor which yields 1 if the
  892.      list L consists of an even permutation of integers, -1 if it
  893.      consists of an odd permutation, and 0 if some indices in L are
  894.      repeated.
  895.  
  896.  
  897.  - Function: LORENTZ (exp)
  898.      imposes the Lorentz condition by substituting 0 for all indexed
  899.      objects in exp that have a derivative index identical to a
  900.      contravariant index.
  901.  
  902.  
  903.  - Function: MAKEBOX (exp)
  904.      will display exp in the same manner as SHOW; however, any tensor
  905.      d'Alembertian occurring in exp will be indicated using the symbol
  906.      [].  For example, []P([M],[N]) represents
  907.      G([],[I,J])*P([M],[N],I,J).
  908.  
  909.  
  910.  - Function: METRIC (G)
  911.      specifies the metric by assigning the variable METRIC:G; in
  912.      addition, the contraction properties of the metric G are set up by
  913.      executing the commands DEFCON(G), DEFCON(G,G,KDELTA).  The
  914.      variable METRIC, default: [], is bound to the metric, assigned by
  915.      the METRIC(g) command.
  916.  
  917.  
  918.  - Function: NTERMSG ()
  919.      gives the user a quick picture of the "size" of the Einstein
  920.      tensor.  It returns a list of pairs whose second elements give the
  921.      number of terms in the components specified by the first elements.
  922.  
  923.  
  924.  - Function: NTERMSRCI ()
  925.      returns a list of pairs, whose second elements give the number of
  926.      terms in the RICCI component specified by the first elements.  In
  927.      this way, it is possible to quickly find the non-zero expressions
  928.      and attempt simplification.
  929.  
  930.  
  931.  - Function: NZETA (Z)
  932.      returns the complex value of the Plasma Dispersion Function for
  933.      complex Z.
  934.           NZETAR(Z) ==> REALPART(NZETA(Z))
  935.      NZETAI(Z) returns IMAGPART(NZETA(Z)).  This function is related to
  936.      the complex error function by
  937.           NZETA(Z) = %I*SQRT(%PI)*EXP(-Z^2)*(1-ERF(-%I*Z)).
  938.  
  939.  
  940.  - Function: RAISERIEMANN (dis)
  941.      returns the contravariant components of the Riemann curvature
  942.      tensor as array elements UR[I,J,K,L].  These are displayed if dis
  943.      is TRUE.
  944.  
  945.  
  946.  - Variable: RATEINSTEIN
  947.      default: [] - if TRUE rational simplification will be performed on
  948.      the non-zero components of Einstein tensors; if FACRAT:TRUE then
  949.      the components will also be factored.
  950.  
  951.  
  952.  - Variable: RATRIEMAN
  953.      - This switch has been renamed RATRIEMANN.
  954.  
  955.  
  956.  - Variable: RATRIEMANN
  957.      default: [] - one of the switches which controls simplification of
  958.      Riemann tensors; if TRUE, then rational simplification will be
  959.      done; if FACRAT:TRUE then each of the components will also be
  960.      factored.
  961.  
  962.  
  963.  - Function: REMCON (tensor1,tensor2,...)
  964.      removes all the contraction properties from the tensori.
  965.      REMCON(ALL) removes all contraction properties from all indexed
  966.      objects.
  967.  
  968.  
  969.  - Function: RICCICOM (dis)
  970.      Tensor package) This function first computes the covariant
  971.      components LR[i,j] of the Ricci tensor (LR is a mnemonic for
  972.      "lower Ricci").  Then the mixed Ricci tensor is computed using the
  973.      contravariant metric tensor.  If the value of the argument to
  974.      RICCICOM is TRUE, then these mixed components, RICCI[i,j] (the
  975.      index i is covariant and the index j is contravariant), will be
  976.      displayed directly.  Otherwise, RICCICOM(FALSE) will simply
  977.      compute the entries of the array RICCI[i,j] without displaying the
  978.      results.
  979.  
  980.  
  981.  - Function: RINVARIANT ()
  982.      Tensor package) forms the invariant obtained by contracting the
  983.      tensors
  984.           R[i,j,k,l]*UR[i,j,k,l].
  985.  
  986.      This object is not
  987.  
  988.      automatically simplified since it can be very large.
  989.  
  990.  
  991.  - Function: SCURVATURE ()
  992.      returns the scalar curvature (obtained by contracting the Ricci
  993.      tensor) of the Riemannian manifold with the given metric.
  994.  
  995.  
  996.  - Function: SETUP ()
  997.      this has been renamed to TSETUP();  Sets up a metric for Tensor
  998.      calculations.
  999.  
  1000.  
  1001.  - Function: WEYL (dis)
  1002.      computes the Weyl conformal tensor.  If the argument dis is TRUE,
  1003.      the non-zero components W[I,J,K,L] will be displayed to the user.
  1004.      Otherwise, these components will simply be computed and stored.
  1005.      If the switch RATWEYL is set to TRUE, then the components will be
  1006.      rationally simplified; if FACRAT is TRUE then the results will be
  1007.      factored as well.
  1008.  
  1009.  
  1010. 
  1011. File: maxima.info,  Node: Ctensor,  Next: Series,  Prev: Tensor,  Up: Top
  1012.  
  1013. Ctensor
  1014. *******
  1015.  
  1016. * Menu:
  1017.  
  1018. * Introduction to Ctensor::
  1019. * Definitions for Ctensor::
  1020.  
  1021. 
  1022. File: maxima.info,  Node: Introduction to Ctensor,  Next: Definitions for Ctensor,  Prev: Ctensor,  Up: Ctensor
  1023.  
  1024. Introduction to Ctensor
  1025. =======================
  1026.  
  1027.    - Component Tensor Manipulation Package.  To use the CTENSR package,
  1028. type TSETUP(); which automatically loads it from within MACSYMA (if it
  1029. is not already loaded) and then prompts the user to input his
  1030. coordinate system.  The user is first asked to specify the dimension of
  1031. the manifold. If the dimension is 2, 3 or 4 then the list of
  1032. coordinates defaults to [X,Y], [X,Y,Z] or [X,Y,Z,T] respectively.
  1033. These names may be changed by assigning a new list of coordinates to
  1034. the variable OMEGA (described below) and the user is queried about this.
  1035. ** Care must be taken to avoid the coordinate names conflicting with
  1036. other object definitions **.  Next, the user enters the metric either
  1037. directly or from a file by specifying its ordinal position. As an
  1038. example of a file of common metrics, see TENSOR;METRIC FILE. The metric
  1039. is stored in the matrix LG. Finally, the metric inverse is computed and
  1040. stored in the matrix UG. One has the option of carrying out all
  1041. calculations in a power series.  A sample protocol is begun below for
  1042. the static, spherically symmetric metric (standard coordinates) which
  1043. will be applied to the problem of deriving Einstein's vacuum equations
  1044. (which lead to the Schwarzschild solution) as an example. Many of the
  1045. functions in CTENSR will be displayed for the standard metric as
  1046. examples.
  1047.      (C2) TSETUP();
  1048.      
  1049.      Enter the dimension of the coordinate system:
  1050.      4;
  1051.      Do you wish to change the coordinate names?
  1052.      N;
  1053.      Do you want to
  1054.      1. Enter a new metric?
  1055.      2. Enter a metric from a file?
  1056.      3. Approximate a metric with a Taylor series?
  1057.      Enter 1, 2 or 3
  1058.      1;
  1059.      Is the matrix  1. Diagonal  2. Symmetric  3. Antisymmetric  4. General
  1060.      Answer 1, 2, 3 or 4
  1061.      1;
  1062.      Row 1 Column 1:  A;
  1063.      Row 2 Column 2:  X^2;
  1064.      Row 3 Column 3:  X^2*SIN(Y)^2;
  1065.      Row 4 Column 4:  -D;
  1066.      Matrix entered.
  1067.      Enter functional dependencies with the DEPENDS function or 'N' if none
  1068.      DEPENDS([A,D],X);
  1069.      Do you wish to see the metric?
  1070.      Y;
  1071.                                [ A  0       0        0  ]
  1072.                                [                        ]
  1073.                                [     2                  ]
  1074.                                [ 0  X       0        0  ]
  1075.                                [                        ]
  1076.                                [         2    2         ]
  1077.                                [ 0  0   X  SIN (Y)   0  ]
  1078.                                [                        ]
  1079.                                [ 0  0       0       - D ]
  1080.      Do you wish to see the metric inverse?
  1081.      N;
  1082.  
  1083. 
  1084. File: maxima.info,  Node: Definitions for Ctensor,  Prev: Introduction to Ctensor,  Up: Ctensor
  1085.  
  1086. Definitions for Ctensor
  1087. =======================
  1088.  
  1089.  - Function: CHR1 ([i,j,k])
  1090.      yields the Christoffel symbol of the first kind via the definition
  1091.                  (g      + g      - g     )/2 .
  1092.                    ik,j     jk,i     ij,k
  1093.  
  1094.      To evaluate the Christoffel symbols for a particular metric, the
  1095.      variable METRIC must be assigned a name as in the example under
  1096.      CHR2.
  1097.  
  1098.  
  1099.  - Function: CHR2 ([i,j],[k])
  1100.      yields the Christoffel symbol of the second kind defined by the
  1101.      relation
  1102.                                  ks
  1103.               CHR2([i,j],[k]) = g    (g      + g      - g     )/2
  1104.                                        is,j     js,i     ij,s
  1105.  
  1106.  - Function: CHRISTOF (arg)
  1107.      A function in the CTENSR (Component Tensor Manipulation) package.
  1108.      It computes the Christoffel symbols of both kinds.  The arg
  1109.      determines which results are to be immediately displayed.  The
  1110.      Christoffel symbols of the first and second kinds are stored in
  1111.      the arrays LCS[i,j,k] and MCS[i,j,k] respectively and defined to
  1112.      be symmetric in the first two indices. If the argument to CHRISTOF
  1113.      is LCS or MCS then the unique non-zero values of LCS[i,j,k] or
  1114.      MCS[i,j,k], respectively, will be displayed. If the argument is ALL
  1115.      then the unique non-zero values of LCS[i,j,k] and MCS[i,j,k] will
  1116.      be displayed.  If the argument is FALSE then the display of the
  1117.      elements will not occur. The array elements MCS[i,j,k] are defined
  1118.      in such a manner that the final index is contravariant.
  1119.  
  1120.  
  1121.  - Function: COVDIFF (exp,v1,v2,...)
  1122.      yields the covariant derivative of exp with respect to the
  1123.      variables vi in terms of the Christoffel symbols of the second
  1124.      kind (CHR2).  In order to evaluate these, one should use
  1125.      EV(exp,CHR2).
  1126.  
  1127.  
  1128.  - Function: CURVATURE ([i,j,k],[h])
  1129.      Indicial Tensor Package) yields the Riemann curvature tensor in
  1130.      terms of the Christoffel symbols of the second kind (CHR2).  The
  1131.      following notation is used:
  1132.                          h            h           h        %1        h
  1133.                 CURVATURE     = - CHR2      - CHR2     CHR2    + CHR2
  1134.                          i j k        i k,j       %1 j     i k       i j,k
  1135.                                         h         %1
  1136.                                   + CHR2      CHR2
  1137.                                         %1 k      i j
  1138.  
  1139.  - Variable: DIAGMETRIC
  1140.      default:[] - An option in the CTENSR (Component Tensor
  1141.      Manipulation) package.  If DIAGMETRIC is TRUE special routines
  1142.      compute all geometrical objects (which contain the metric tensor
  1143.      explicitly) by taking into consideration the diagonality of the
  1144.      metric. Reduced run times will, of course, result. Note: this
  1145.      option is set automatically by TSETUP if a diagonal metric is
  1146.      specified.
  1147.  
  1148.  
  1149.  - Variable: DIM
  1150.      default:[4] - An option in the CTENSR (Component Tensor
  1151.      Manipulation) package.  DIM is the dimension of the manifold with
  1152.      the default 4. The command DIM:N; will reset the dimension to any
  1153.      other integral value.
  1154.  
  1155.  
  1156.  - Function: EINSTEIN (dis)
  1157.      A function in the CTENSR (Component Tensor Manipulation) package.
  1158.      EINSTEIN computes the mixed Einstein tensor after the Christoffel
  1159.      symbols and Ricci tensor have been obtained (with the functions
  1160.      CHRISTOF and RICCICOM).  If the argument dis is TRUE, then the
  1161.      non-zero values of the mixed Einstein tensor G[i,j] will be
  1162.      displayed where j is the contravariant index.  RATEINSTEIN[TRUE]
  1163.      if TRUE will cause the rational simplification on these
  1164.      components. If RATFAC[FALSE] is TRUE then the components will also
  1165.      be factored.
  1166.  
  1167.  
  1168.  - Function: LRICCICOM (dis)
  1169.      A function in the CTENSR (Component Tensor Manipulation) package.
  1170.      LRICCICOM computes the covariant (symmetric) components LR[i,j] of
  1171.      the Ricci tensor.  If the argument dis is TRUE, then the non-zero
  1172.      components are displayed.
  1173.  
  1174.  
  1175.  - Function: MOTION (dis)
  1176.      A function in the CTENSR (Component Tensor Manipulation) package.
  1177.      MOTION computes the geodesic equations of motion for a given
  1178.      metric.  They are stored in the array EM[i].  If the argument dis
  1179.      is TRUE then these equations are displayed.
  1180.  
  1181.  
  1182.  - Variable: OMEGA
  1183.      default:[] - An option in the CTENSR (Component Tensor
  1184.      Manipulation) package.  OMEGA assigns a list of coordinates to the
  1185.      variable. While normally defined when the function TSETUP is
  1186.      called, one may redefine the coordinates with the assignment
  1187.      OMEGA:[j1,j2,...jn] where the j's are the new coordinate names. A
  1188.      call to OMEGA will return the coordinate name list.  Also see
  1189.      DESCRIBE(TSETUP); .
  1190.  
  1191.  
  1192.  - Function: RIEMANN (dis)
  1193.      A function in the CTENSR (Component Tensor Manipulation) Package.
  1194.      RIEMANN computes the Riemann curvature tensor from the given
  1195.      metric and the corresponding Christoffel symbols.  If dis is TRUE,
  1196.      the non-zero components R[i,j,k,l] will be displayed. All the
  1197.      indicated indices are covariant.  As with the Einstein tensor,
  1198.      various switches set by the user control the simplification of the
  1199.      components of the Riemann tensor.  If RATRIEMAN[TRUE] is TRUE then
  1200.      rational simplification will be done. If RATFAC[FALSE] is TRUE then
  1201.      each of the components will also be factored.
  1202.  
  1203.  
  1204.  - Function: TRANSFORM
  1205.      - The TRANSFORM command in the CTENSR package has been renamed to
  1206.      TTRANSFORM.
  1207.  
  1208.  
  1209.  - Function: TSETUP ()
  1210.      A function in the CTENSR (Component Tensor Manipulation) package
  1211.      which automatically loads the CTENSR package from within MACSYMA
  1212.      (if it is not already loaded) and then prompts the user to make
  1213.      use of it.  Do DESCRIBE(CTENSR); for more details.
  1214.  
  1215.  
  1216.  - Function: TTRANSFORM (matrix)
  1217.      A function in the CTENSR (Component Tensor Manipulation) package
  1218.      which will perform a coordinate transformation upon an arbitrary
  1219.      square symmetric matrix. The user must input the functions which
  1220.      define the transformation.  (Formerly called TRANSFORM.)
  1221.  
  1222.  
  1223. 
  1224. File: maxima.info,  Node: Series,  Next: Number Theory,  Prev: Ctensor,  Up: Top
  1225.  
  1226. Series
  1227. ******
  1228.  
  1229. * Menu:
  1230.  
  1231. * Introduction to Series::
  1232. * Definitions for Series::
  1233.  
  1234.